home *** CD-ROM | disk | FTP | other *** search
/ Champak 128 / Vol 128 (Damaged).iso / games / hello_ki.swf / scripts / __Packages / udt / tools / SecurityTool.as
Encoding:
Text File  |  2011-03-26  |  10.7 KB  |  238 lines

  1. class udt.tools.SecurityTool
  2. {
  3.    function SecurityTool()
  4.    {
  5.    }
  6.    static function fnMD5(pString)
  7.    {
  8.       return udt.tools.SecurityTool.fnBinaryToHex(udt.tools.SecurityTool.fnMd5Proc(udt.tools.SecurityTool.fnStringToBinary(pString),pString.length * 8));
  9.    }
  10.    static function fnMd5Proc(x, len)
  11.    {
  12.       x[len >> 5] |= 128 << len % 32;
  13.       x[(len + 64 >>> 9 << 4) + 14] = len;
  14.       var a = 1732584193;
  15.       var _loc3_ = -271733879;
  16.       var _loc2_ = -1732584194;
  17.       var _loc1_ = 271733878;
  18.       var i = 0;
  19.       while(i < x.length)
  20.       {
  21.          var olda = a;
  22.          var oldb = _loc3_;
  23.          var oldc = _loc2_;
  24.          var oldd = _loc1_;
  25.          a = udt.tools.SecurityTool.fnFF(a,_loc3_,_loc2_,_loc1_,x[i + 0],7,-680876936);
  26.          _loc1_ = udt.tools.SecurityTool.fnFF(_loc1_,a,_loc3_,_loc2_,x[i + 1],12,-389564586);
  27.          _loc2_ = udt.tools.SecurityTool.fnFF(_loc2_,_loc1_,a,_loc3_,x[i + 2],17,606105819);
  28.          _loc3_ = udt.tools.SecurityTool.fnFF(_loc3_,_loc2_,_loc1_,a,x[i + 3],22,-1044525330);
  29.          a = udt.tools.SecurityTool.fnFF(a,_loc3_,_loc2_,_loc1_,x[i + 4],7,-176418897);
  30.          _loc1_ = udt.tools.SecurityTool.fnFF(_loc1_,a,_loc3_,_loc2_,x[i + 5],12,1200080426);
  31.          _loc2_ = udt.tools.SecurityTool.fnFF(_loc2_,_loc1_,a,_loc3_,x[i + 6],17,-1473231341);
  32.          _loc3_ = udt.tools.SecurityTool.fnFF(_loc3_,_loc2_,_loc1_,a,x[i + 7],22,-45705983);
  33.          a = udt.tools.SecurityTool.fnFF(a,_loc3_,_loc2_,_loc1_,x[i + 8],7,1770035416);
  34.          _loc1_ = udt.tools.SecurityTool.fnFF(_loc1_,a,_loc3_,_loc2_,x[i + 9],12,-1958414417);
  35.          _loc2_ = udt.tools.SecurityTool.fnFF(_loc2_,_loc1_,a,_loc3_,x[i + 10],17,-42063);
  36.          _loc3_ = udt.tools.SecurityTool.fnFF(_loc3_,_loc2_,_loc1_,a,x[i + 11],22,-1990404162);
  37.          a = udt.tools.SecurityTool.fnFF(a,_loc3_,_loc2_,_loc1_,x[i + 12],7,1804603682);
  38.          _loc1_ = udt.tools.SecurityTool.fnFF(_loc1_,a,_loc3_,_loc2_,x[i + 13],12,-40341101);
  39.          _loc2_ = udt.tools.SecurityTool.fnFF(_loc2_,_loc1_,a,_loc3_,x[i + 14],17,-1502002290);
  40.          _loc3_ = udt.tools.SecurityTool.fnFF(_loc3_,_loc2_,_loc1_,a,x[i + 15],22,1236535329);
  41.          a = udt.tools.SecurityTool.fnGG(a,_loc3_,_loc2_,_loc1_,x[i + 1],5,-165796510);
  42.          _loc1_ = udt.tools.SecurityTool.fnGG(_loc1_,a,_loc3_,_loc2_,x[i + 6],9,-1069501632);
  43.          _loc2_ = udt.tools.SecurityTool.fnGG(_loc2_,_loc1_,a,_loc3_,x[i + 11],14,643717713);
  44.          _loc3_ = udt.tools.SecurityTool.fnGG(_loc3_,_loc2_,_loc1_,a,x[i + 0],20,-373897302);
  45.          a = udt.tools.SecurityTool.fnGG(a,_loc3_,_loc2_,_loc1_,x[i + 5],5,-701558691);
  46.          _loc1_ = udt.tools.SecurityTool.fnGG(_loc1_,a,_loc3_,_loc2_,x[i + 10],9,38016083);
  47.          _loc2_ = udt.tools.SecurityTool.fnGG(_loc2_,_loc1_,a,_loc3_,x[i + 15],14,-660478335);
  48.          _loc3_ = udt.tools.SecurityTool.fnGG(_loc3_,_loc2_,_loc1_,a,x[i + 4],20,-405537848);
  49.          a = udt.tools.SecurityTool.fnGG(a,_loc3_,_loc2_,_loc1_,x[i + 9],5,568446438);
  50.          _loc1_ = udt.tools.SecurityTool.fnGG(_loc1_,a,_loc3_,_loc2_,x[i + 14],9,-1019803690);
  51.          _loc2_ = udt.tools.SecurityTool.fnGG(_loc2_,_loc1_,a,_loc3_,x[i + 3],14,-187363961);
  52.          _loc3_ = udt.tools.SecurityTool.fnGG(_loc3_,_loc2_,_loc1_,a,x[i + 8],20,1163531501);
  53.          a = udt.tools.SecurityTool.fnGG(a,_loc3_,_loc2_,_loc1_,x[i + 13],5,-1444681467);
  54.          _loc1_ = udt.tools.SecurityTool.fnGG(_loc1_,a,_loc3_,_loc2_,x[i + 2],9,-51403784);
  55.          _loc2_ = udt.tools.SecurityTool.fnGG(_loc2_,_loc1_,a,_loc3_,x[i + 7],14,1735328473);
  56.          _loc3_ = udt.tools.SecurityTool.fnGG(_loc3_,_loc2_,_loc1_,a,x[i + 12],20,-1926607734);
  57.          a = udt.tools.SecurityTool.fnHH(a,_loc3_,_loc2_,_loc1_,x[i + 5],4,-378558);
  58.          _loc1_ = udt.tools.SecurityTool.fnHH(_loc1_,a,_loc3_,_loc2_,x[i + 8],11,-2022574463);
  59.          _loc2_ = udt.tools.SecurityTool.fnHH(_loc2_,_loc1_,a,_loc3_,x[i + 11],16,1839030562);
  60.          _loc3_ = udt.tools.SecurityTool.fnHH(_loc3_,_loc2_,_loc1_,a,x[i + 14],23,-35309556);
  61.          a = udt.tools.SecurityTool.fnHH(a,_loc3_,_loc2_,_loc1_,x[i + 1],4,-1530992060);
  62.          _loc1_ = udt.tools.SecurityTool.fnHH(_loc1_,a,_loc3_,_loc2_,x[i + 4],11,1272893353);
  63.          _loc2_ = udt.tools.SecurityTool.fnHH(_loc2_,_loc1_,a,_loc3_,x[i + 7],16,-155497632);
  64.          _loc3_ = udt.tools.SecurityTool.fnHH(_loc3_,_loc2_,_loc1_,a,x[i + 10],23,-1094730640);
  65.          a = udt.tools.SecurityTool.fnHH(a,_loc3_,_loc2_,_loc1_,x[i + 13],4,681279174);
  66.          _loc1_ = udt.tools.SecurityTool.fnHH(_loc1_,a,_loc3_,_loc2_,x[i + 0],11,-358537222);
  67.          _loc2_ = udt.tools.SecurityTool.fnHH(_loc2_,_loc1_,a,_loc3_,x[i + 3],16,-722521979);
  68.          _loc3_ = udt.tools.SecurityTool.fnHH(_loc3_,_loc2_,_loc1_,a,x[i + 6],23,76029189);
  69.          a = udt.tools.SecurityTool.fnHH(a,_loc3_,_loc2_,_loc1_,x[i + 9],4,-640364487);
  70.          _loc1_ = udt.tools.SecurityTool.fnHH(_loc1_,a,_loc3_,_loc2_,x[i + 12],11,-421815835);
  71.          _loc2_ = udt.tools.SecurityTool.fnHH(_loc2_,_loc1_,a,_loc3_,x[i + 15],16,530742520);
  72.          _loc3_ = udt.tools.SecurityTool.fnHH(_loc3_,_loc2_,_loc1_,a,x[i + 2],23,-995338651);
  73.          a = udt.tools.SecurityTool.fnII(a,_loc3_,_loc2_,_loc1_,x[i + 0],6,-198630844);
  74.          _loc1_ = udt.tools.SecurityTool.fnII(_loc1_,a,_loc3_,_loc2_,x[i + 7],10,1126891415);
  75.          _loc2_ = udt.tools.SecurityTool.fnII(_loc2_,_loc1_,a,_loc3_,x[i + 14],15,-1416354905);
  76.          _loc3_ = udt.tools.SecurityTool.fnII(_loc3_,_loc2_,_loc1_,a,x[i + 5],21,-57434055);
  77.          a = udt.tools.SecurityTool.fnII(a,_loc3_,_loc2_,_loc1_,x[i + 12],6,1700485571);
  78.          _loc1_ = udt.tools.SecurityTool.fnII(_loc1_,a,_loc3_,_loc2_,x[i + 3],10,-1894986606);
  79.          _loc2_ = udt.tools.SecurityTool.fnII(_loc2_,_loc1_,a,_loc3_,x[i + 10],15,-1051523);
  80.          _loc3_ = udt.tools.SecurityTool.fnII(_loc3_,_loc2_,_loc1_,a,x[i + 1],21,-2054922799);
  81.          a = udt.tools.SecurityTool.fnII(a,_loc3_,_loc2_,_loc1_,x[i + 8],6,1873313359);
  82.          _loc1_ = udt.tools.SecurityTool.fnII(_loc1_,a,_loc3_,_loc2_,x[i + 15],10,-30611744);
  83.          _loc2_ = udt.tools.SecurityTool.fnII(_loc2_,_loc1_,a,_loc3_,x[i + 6],15,-1560198380);
  84.          _loc3_ = udt.tools.SecurityTool.fnII(_loc3_,_loc2_,_loc1_,a,x[i + 13],21,1309151649);
  85.          a = udt.tools.SecurityTool.fnII(a,_loc3_,_loc2_,_loc1_,x[i + 4],6,-145523070);
  86.          _loc1_ = udt.tools.SecurityTool.fnII(_loc1_,a,_loc3_,_loc2_,x[i + 11],10,-1120210379);
  87.          _loc2_ = udt.tools.SecurityTool.fnII(_loc2_,_loc1_,a,_loc3_,x[i + 2],15,718787259);
  88.          _loc3_ = udt.tools.SecurityTool.fnII(_loc3_,_loc2_,_loc1_,a,x[i + 9],21,-343485551);
  89.          a = udt.tools.SecurityTool.fnMD5Add(a,olda);
  90.          _loc3_ = udt.tools.SecurityTool.fnMD5Add(_loc3_,oldb);
  91.          _loc2_ = udt.tools.SecurityTool.fnMD5Add(_loc2_,oldc);
  92.          _loc1_ = udt.tools.SecurityTool.fnMD5Add(_loc1_,oldd);
  93.          i += 16;
  94.       }
  95.       return Array(a,_loc3_,_loc2_,_loc1_);
  96.    }
  97.    static function fnCMN(q, a, b, x, s, t)
  98.    {
  99.       return udt.tools.SecurityTool.fnMD5Add(udt.tools.SecurityTool.fnShiftBitLeft(udt.tools.SecurityTool.fnMD5Add(udt.tools.SecurityTool.fnMD5Add(a,q),udt.tools.SecurityTool.fnMD5Add(x,t)),s),b);
  100.    }
  101.    static function fnFF(a, b, c, d, x, s, t)
  102.    {
  103.       var _loc1_ = b;
  104.       return udt.tools.SecurityTool.fnCMN(_loc1_ & c | (~_loc1_) & d,a,_loc1_,x,s,t);
  105.    }
  106.    static function fnGG(a, b, c, d, x, s, t)
  107.    {
  108.       return udt.tools.SecurityTool.fnCMN(b & d | c & (~d),a,b,x,s,t);
  109.    }
  110.    static function fnHH(a, b, c, d, x, s, t)
  111.    {
  112.       return udt.tools.SecurityTool.fnCMN(b ^ c ^ d,a,b,x,s,t);
  113.    }
  114.    static function fnII(a, b, c, d, x, s, t)
  115.    {
  116.       return udt.tools.SecurityTool.fnCMN(c ^ (b | ~d),a,b,x,s,t);
  117.    }
  118.    static function fnMD5Add(x, y)
  119.    {
  120.       var _loc1_ = (x & 65535) + (y & 65535);
  121.       var _loc2_ = (x >> 16) + (y >> 16) + (_loc1_ >> 16);
  122.       return _loc2_ << 16 | _loc1_ & 65535;
  123.    }
  124.    static function fnShiftBitLeft(num, cnt)
  125.    {
  126.       return num << cnt | num >>> 32 - cnt;
  127.    }
  128.    static function fnStringToBinary(str)
  129.    {
  130.       var _loc2_ = str;
  131.       var _loc3_ = Array();
  132.       var mask = 255;
  133.       var _loc1_ = 0;
  134.       while(_loc1_ < _loc2_.length * 8)
  135.       {
  136.          _loc3_[_loc1_ >> 5] |= (_loc2_.charCodeAt(_loc1_ / 8) & mask) << _loc1_ % 32;
  137.          _loc1_ += 8;
  138.       }
  139.       return _loc3_;
  140.    }
  141.    static function fnBinaryToHex(binarray)
  142.    {
  143.       var _loc2_ = binarray;
  144.       var _loc3_ = "0123456789abcdef";
  145.       var str = "";
  146.       var _loc1_ = 0;
  147.       while(_loc1_ < _loc2_.length * 4)
  148.       {
  149.          str += _loc3_.charAt(_loc2_[_loc1_ >> 2] >> _loc1_ % 4 * 8 + 4 & 15) + _loc3_.charAt(_loc2_[_loc1_ >> 2] >> _loc1_ % 4 * 8 & 15);
  150.          _loc1_ = _loc1_ + 1;
  151.       }
  152.       return str;
  153.    }
  154.    static function fnFlashEncrypt(pKey, pString)
  155.    {
  156.       var _loc3_ = pKey;
  157.       var tResultString = "";
  158.       var tOdd;
  159.       var _loc1_ = undefined;
  160.       if(_loc3_.charAt(0).charCodeAt(0) % 2 != 0)
  161.       {
  162.          tOdd = true;
  163.          _loc1_ = 0;
  164.       }
  165.       else
  166.       {
  167.          tOdd = false;
  168.          _loc1_ = _loc3_.length - 1;
  169.       }
  170.       var _loc2_ = 0;
  171.       while(_loc2_ < pString.length)
  172.       {
  173.          var tOrd = _loc3_.charAt(_loc1_).charCodeAt(0);
  174.          tResultString += String.fromCharCode(pString.charAt(_loc2_).charCodeAt(0) + tOrd);
  175.          if(tOdd)
  176.          {
  177.             _loc1_ = _loc1_ + 1;
  178.             if(_loc1_ == _loc3_.length)
  179.             {
  180.                _loc1_ = 0;
  181.             }
  182.          }
  183.          else
  184.          {
  185.             _loc1_ = _loc1_ - 1;
  186.             if(_loc1_ == -1)
  187.             {
  188.                _loc1_ = _loc3_.length - 1;
  189.             }
  190.          }
  191.          _loc2_ = _loc2_ + 1;
  192.       }
  193.       return escape(tResultString);
  194.    }
  195.    static function fnFlashDecrypt(pKey, pString)
  196.    {
  197.       var _loc3_ = pKey;
  198.       pString = unescape(pString);
  199.       var tResultString = "";
  200.       var tOdd;
  201.       var _loc1_ = undefined;
  202.       if(_loc3_.charAt(0).charCodeAt(0) % 2 != 0)
  203.       {
  204.          tOdd = true;
  205.          _loc1_ = 0;
  206.       }
  207.       else
  208.       {
  209.          tOdd = false;
  210.          _loc1_ = _loc3_.length - 1;
  211.       }
  212.       var _loc2_ = 0;
  213.       while(_loc2_ < pString.length)
  214.       {
  215.          var tOrd = _loc3_.charAt(_loc1_).charCodeAt(0);
  216.          tResultString += String.fromCharCode(pString.charAt(_loc2_).charCodeAt(0) - tOrd);
  217.          if(tOdd)
  218.          {
  219.             _loc1_ = _loc1_ + 1;
  220.             if(_loc1_ == _loc3_.length)
  221.             {
  222.                _loc1_ = 0;
  223.             }
  224.          }
  225.          else
  226.          {
  227.             _loc1_ = _loc1_ - 1;
  228.             if(_loc1_ == -1)
  229.             {
  230.                _loc1_ = _loc3_.length - 1;
  231.             }
  232.          }
  233.          _loc2_ = _loc2_ + 1;
  234.       }
  235.       return tResultString;
  236.    }
  237. }
  238.